<?php

/*------------------------------------------------
*
*   Explay Engine Content Management System.
*   Copyright © 2008 Golovdinov Alexander.
*
*-------------------------------------------------
*
*   Official site: wwww.alex-home.spb.ru/explay.html
*   Contact e-mail: golovdinov@gmail.com
*
*   GNU General Public License original source:
*   http://www.gnu.org/licenses/gpl-3.0.html
*
------------------------------------------------*/

if (!defined ('EXPLAY')) exit;


class userViewArticles {

	/**
	 * Возвращает форму редактирования/добавления статьи
	 *
	 * @param array $art
	 * @return string
	 */
	public function article_form ($art) {
		
		$user_model = userModelArticles::getInstance ();
		$errors = $user_model->errors;
		$mysql = articlesMySQL::getInstance ();
		$db = MySQL::getInstance ();
		$controller = articlesController::getInstance ();
		
		$return = '';
		
		if ($art['art_header'] == '' && isset ($_POST['header'])) $art['art_header'] = strip_tags($_POST['header']);
		if ($art['art_body'] == '' && isset ($_POST['big_text'])) $art['art_body'] = $_POST['big_text'];
		if ($art['art_tags'] == '' && isset ($_POST['tags'])) $art['art_tags'] = strip_tags($_POST['tags']);
		
		$art['art_header'] = str_replace ('"', '&quot;', $art['art_header']);
		$art['art_body'] = replace_symbols ($art['art_body']);
		$art['art_body'] = str_replace ('&', '&amp;', $art['art_body']);
		
		$return .= file_get_contents ($_SERVER['DOCUMENT_ROOT'].'/include/editor.html');
		
		//
		// Form
		//
		include $_SERVER['DOCUMENT_ROOT'].'/engine/forms.class.php';
		
		$action_header = ($art['art_id'] == 0) ? 'Добавить' : 'Изменить';
		$action = ($art['art_id'] == 0) ? '/my_articles/add/?save' : '/my_articles/'.$art['art_id'].'.html?edit&save';
		
		$form = new explayForm ($action_header.' статью', $action, 'post', 'record');
		
		$item = $form->new_item ('hidden');
		$item->name ('tid');
		$item->value ($art['art_id']);
		$item->done ();
		
		$item = $form->new_item ('text');
		$item->label ('Заголовок');
		$item->name ('header');
		$item->value ($art['art_header']);
		$item->help ('Заголовок должен быть максимально коротким и наиболее конкретно отображать тему статьи.');
		if (isset ($errors['header'])) $item->error ($errors['header']);
		$item->done ();
		
		$item = $form->new_item ('select');
		$item->label ('В блог');
		$item->name ('category');
		
		($controller->settings['personal_blog'] == 'on')
			? $item->option ('', 'персональный блог')
			: $item->option ('', 'выберите блог');
		
		if ($controller->settings['view_all_blogs'] == 'on') {
		
			$get = $mysql->get_all_writable_blogs ();
			
			while (list($name_, $title_) = $db->fetch_row ($get)) {
				($art['art_category'] == $name_)
					? $item->option ($name_, $title_, true)
					: $item->option ($name_, $title_);
			}
			
		
		} else {
			$get = $mysql->get_user_included_blogs ();
			
			while (list($bname, $bheader) = $db->fetch_row($get)) {
				if (mb_strlen ($bname))
					($art['art_category'] == $bname)
						? $item->option ($bname, $bheader, true)
						: $item->option ($bname, $bheader);
			}
			
		}
		
		if (isset ($errors['blog'])) $item->error ($errors['blog']);
		$item->done ();
		
		$item = $form->new_item ('textarea');
		$item->name ('big_text');
		$item->value ($art['art_body']);
		$item->attr ('id', 'htmlarea');
		$item->attr ('class', 'htmlarea');
		if (isset ($errors['text'])) $item->error ($errors['text']);
		$item->help ('Для отделение описания от основного текста используйте тег <strong>&lt;cut&gt;</strong>. Так же можно использовать html-теги.');
		
		$item->pre_text ('
					<p />
					<div id="panel" class="panel">
					 <a href="#" onclick="insert_text_b(); return false;" class="buttn"><img src="/images/editor/bold_ru.gif" width="20" height="20" alt=" " title="жирный"></a>
					 <a href="#" onclick="insert_text_i(); return false;" class="buttn"><img src="/images/editor/italic_ru.gif" width="20" height="20" alt=" " title="курсив"></a>
					 <a href="#" onclick="insert_text_u(); return false;" class="buttn"><img src="/images/editor/underline_ru.gif" width="20" height="20" alt=" " title="подчеркнутый"></a>
					 <a href="#" onclick="insert_text_s(); return false;" class="buttn"><img src="/images/editor/strikethrough.gif" width="20" height="20" alt=" " title="зачеркнуть"></a>
					 <a href="#" onclick="insert_text_link(); return false;" class="buttn"><img src="/images/editor/link.gif" width="20" height="20" alt=" " title="вставить ссылку"></a>
					 <a href="#" onclick="insert_text_blockquote(); return false;" class="buttn"><img src="/images/editor/indent.gif" width="20" height="20" alt=" " title="отступ"></a>
					 <a href="#" onclick="insert_text_quote(); return false;" class="buttn"><img src="/images/editor/laquo.gif" width="20" height="20" alt=" " title="кавычки" id="quoteimg"></a>
					 <a href="#" onclick="insert_text_mdash(); return false;" class="buttn"><img src="/images/editor/mdash.gif" width="20" height="20" alt=" " title="тире"></a>
					 <a href="#" onclick="insert_text_img(); return false;" class="buttn"><img src="/images/editor/image.gif" width="20" height="20" alt=" " title="вставить изображение"></a>
					 <a href="#" onclick="insert_text_youtube(); return false;" class="buttn"><img src="/images/editor/video.gif" width="20" height="20" alt=" " title="вставить видео с YouTube"></a>
					 <a href="#" onclick="insert_text_rutube(); return false;" class="buttn"><img src="/images/editor/rutube.gif" width="20" height="20" alt=" " title="вставить видео с RuTube"></a>
					 <a href="#" onclick="insert_text_vimeo(); return false;" class="buttn"><img src="/images/editor/vimeo.gif" width="20" height="20" alt=" " title="вставить видео с Vimeo"></a>
					 <a href="#" onclick="text_undo(); return false;" class="buttn"><img src="/images/editor/undo_grey.gif" width="20" height="20" alt=" " title="отменить" id="undoimg"></a>
					</div>
				');
		$item->post_text ("
					<div style=\"background: url(/images/editor/statusbar_resize.gif); width: 11px; height: 20px; float: right; cursor: nw-resize\" onmousedown=\"resize_start(event); return false;\" onmouseup=\"resize_stop\"></div>
				");
		$item->done ();
		
		
		$item = $form->new_item ('text');
		$item->name ('tags');
		$item->label ('Теги');
		$item->value ($art['art_tags']);
		$item->help ('Добавьте несколько (3-5) ключевых слов <u>через запятую</u>, наиболее конкретно характеризующих статью.');
		if (isset ($errors['tags'])) $item->error ($errors['tags']);
		$item->done ();
		
		$item = $form->new_item ('checkbox');
		$item->name ('comment');
		$item->label ('Разрешить комментарии');
		$item->value ('on');
		if ($art['art_comments'] == 'on') $item->attr ('checked', 'checked');
		$item->done ();
		
		$item = $form->new_item ('checkbox');
		$item->name ('auto_tag');
		$item->label ('Включить автоматический перенос строк');
		$item->value ('yes');
		if ($art['auto_tag'] == 'yes') $item->attr ('checked', 'checked');
		$item->done ();
		
		
		$form->add_button ('submit', 'опубликовать', 'action_type');
		$form->add_button ('submit', 'сохранить в черновиках', 'action_type');
		
		$return .= $form->past(true);
		
		return $return;
	}
	
	/**
	 * Возвращает форму редактирования/добавления блога
	 *
	 * @param array $blog
	 * @return string
	 */
	public function blog_form ($blog) {
		
		$user_model = userModelArticles::getInstance ();
		$errors = $user_model->errors;
		$db = MySQL::getInstance ();
		
		if ($blog['cat_header'] == '' && isset ($_POST['header'])) $blog['cat_header'] = strip_tags($_POST['header']);
		if ($blog['cat_description'] == '' && isset ($_POST['desc'])) $blog['cat_description'] = strip_tags($_POST['desc']);
		if ($blog['cat_name'] == '' && isset ($_POST['header'])) $blog['cat_name'] = strip_tags($_POST['name']);
		
		if ($blog['cat_id'] == 0) {
			$title = 'Новый';
			$act = 'new_blog/?save_blog';
		} else {
			$title = 'Изменить';
			$act = '?edit_blog='.$blog['cat_id'].'&save_blog';
		}
	
		//
		// Form
		//
		include $_SERVER['DOCUMENT_ROOT'].'/engine/forms.class.php';
		
		$form = new explayForm ("$title блог", "/my_articles/$act", 'post', 'record');
		
		$item = $form->new_item ('hidden');
		$item->name ('tid');
		$item->value ($blog['cat_id']);
		$item->done ();
		
		if (isset ($blog['cat_id'])) {
			$item = $form->new_item ('hidden');
			$item->name ('name');
			$item->value ($blog['cat_name']);
			$item->done ();
		}
		
		$item = $form->new_item ('text');
		$item->name ('name');
		$item->label ('Имя блога');
		$item->value ($blog['cat_name']);
		if ($blog['cat_id'] > 0) $item->attr ('disabled');
		$item->help ('Имя должно содержать <u>только</u> латинские буквы, без пробелов и других символов (желательно без цифр). Длина от 3-х до 16-ти символов');
		if (isset ($errors['blogname'])) $item->error ($errors['blogname']);
		$item->done ();
		
		$item = $form->new_item ('text');
		$item->name ('header');
		$item->label ('Название блога');
		$item->value ($blog['cat_header']);
		$item->help ('Кратко и со смыслом');
		if (isset ($errors['blogheader'])) $item->error ($errors['blogheader']);
		$item->done ();
		
		$item = $form->new_item ('textarea');
		$item->name ('desc');
		$item->label ('Описание');
		$item->value ($blog['cat_description']);
		$item->done ();
		
		$item = $form->new_item ('file');
		$item->name ('avatar');
		$item->label ('Аватар');
		if (isset ($errors['file'])) $item->error ($errors['file']);
		$item->done ();
		
		$form->add_button ('submit', 'сохранить');
		
		return $form->past(true);
	}
	
	/**
	 * Выводит, доступные пользователю, блоги для редактирования
	 */
	public function blog_bar () {
		$mysql = articlesMySQL::getInstance ();
		$db = MySQL::getInstance ();
		
		$get = $mysql->select_user_blogs (User::$properties['user_id']);
		
		if ($db->num_rows ($get) > 0) {
			$blogs = array ();
			
			while ($blog = $db->fetch_array ($get)) {
				$string = '<a href="/my_articles/?edit_blog='.$blog['cat_id'].'">'.$blog['cat_header'].'</a>';
				array_push ($blogs, $string);
			}
			
			$blogs = implode (', ', $blogs);
			return simple_table ('Управление моими блогами: '.$blogs, false);
		} else {
			return false;
		}	
	}

}